package com.andy.common.to.es;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;


/**
 * ES中的保存的数据结构
 * PUT product
 * {
 *   "mappings": {
 *     "properties":{
 *       "skuId":{
 *          "type": "long"
 *       },
 *       "spuId":{
 *          "type": "keyword"
 *       },
 *       "skuTitel":{
 *         "type": "text",
 *         "analyzer": "ik_smart"
 *       },
 *        "skuPrice":{
 *           "type": "keyword"
 *       },
 *        "skuImg":{
 *           "type": "keyword",
 *           "index": false,
 *           "doc_values": false
 *       },
 *        "saleCount":{
 *         "type": "long"
 *       },
 *        "hasStock":{
 *         "type": "boolean"
 *       },
 *        "hasScore":{
 *         "type": "long"
 *       },
 *        "brandId":{
 *         "type": "long"
 *       },
 *        "catalogId":{
 *         "type": "long"
 *       },
 *        "brandName":{
 *           "type": "keyword",
 *           "index": false,
 *           "doc_values": false
 *       },
 *        "brandImg":{
 *           "type": "keyword",
 *           "index": false,
 *           "doc_values": false
 *       },
 *        "catalogName":{
 *           "type": "keyword",
 *           "index": false,
 *           "doc_values": false
 *       },
 *       "attrs":{
 *           "type": "nested",
 *           "properties": {
 *             "attrId":{
 *               "type": "long"
 *             },
 *             "attrName":{
 *               "type": "keyword",
 *               "index": false,
 *               "doc_values": false
 *             },
 *             "attrValue":{
 *                   "type": "keyword"
 *               }
 *           }
 *         }
 *     }
 *   }
 * }
 *
 */
@Data
public class SkuEsModel {

    private Long skuId;

    private Long spuId;

    private String skuTitle;

    private BigDecimal skuPrice;

    private String skuImg;

    private Long saleCount;

    private Boolean hasStock;

    private Long hotScore;

    private Long brandId;

    private Long catalogId;

    private String brandName;

    private String brandImg;

    private String catalogName;

    private List<Attrs> attrs;

    @Data
    //为了第三方工具能对它序列化反序列化，设置为可访问的权限
    public static class Attrs {
        private Long attrId;
        private String attrName;
        private String attrValue;
    }

}
